Copyright © 2024 Kees Krijnen
Audio companding 16-bit two's complement
13-bits significant (including sign) 20-bits value companding to 16-bits value 13 bits ~ 78 dB psychoacoustic masking -> 20 bits ~ 120 dB dynamic range 13-bits = "sabcdefghijkl", s = sign, l = step_lsb, [step_lsb-1:0] = don't care for encoder, = sign for decoder s s step 0 1 abcdefghijkl 000000 -> 0 111 abcdefghijkl 0 01 abcdefghijkl 00000 -> 0 110 abcdefghijkl 0 001 abcdefghijkl 0000 -> 0 101 abcdefghijkl 0 0001 abcdefghijkl 000 -> 0 100 abcdefghijkl 0 00001 abcdefghijkl 00 -> 0 011 abcdefghijkl 0 000001 abcdefghijkl 0 -> 0 010 abcdefghijkl 0 0000001 abcdefghijkl -> 0 001 abcdefghijkl 0 0000000 abcdefghijkl -> 0 000 abcdefghijkl 1 0 abcdefghijkl 111111 -> 1 000 abcdefghijkl 1 10 abcdefghijkl 11111 -> 1 001 abcdefghijkl 1 110 abcdefghijkl 1111 -> 1 010 abcdefghijkl 1 1110 abcdefghijkl 111 -> 1 011 abcdefghijkl 1 11110 abcdefghijkl 11 -> 1 100 abcdefghijkl 1 111110 abcdefghijkl 1 -> 1 101 abcdefghijkl 1 1111110 abcdefghijkl -> 1 110 abcdefghijkl 1 1111111 abcdefghijkl -> 1 111 abcdefghijkl 2-bits significant (including sign) 9-bits value companding to 5-bits value 0 1 a 000000 -> 0 111 a 0 1 1 000000 -> 0 111 1 192 -> 15 0 1 0 000000 -> 0 111 0 128 -> 14 0 01 a 00000 -> 0 110 a 0 01 1 00000 -> 0 110 1 96 -> 13 0 01 0 00000 -> 0 110 0 64 -> 12 0 001 a 0000 -> 0 101 a 0 001 1 0000 -> 0 101 1 48 -> 11 0 001 0 0000 -> 0 101 0 32 -> 10 0 0001 a 000 -> 0 100 a 0 0001 1 000 -> 0 100 1 24 -> 9 0 0001 0 000 -> 0 100 0 16 -> 8 0 00001 a 00 -> 0 011 a 0 00001 1 00 -> 0 011 1 12 -> 7 0 00001 0 00 -> 0 011 0 8 -> 6 0 000001 a 0 -> 0 010 a 0 000001 1 0 -> 0 010 1 6 -> 5 0 000001 0 0 -> 0 010 0 4 -> 4 0 0000001 a -> 0 001 a 0 0000001 1 -> 0 001 1 3 -> 3 0 0000001 0 -> 0 001 0 2 -> 2 0 0000000 a -> 0 000 a 0 0000000 1 -> 0 000 1 1 -> 1 0 0000000 0 -> 0 000 0 0 -> 0 1 0 a 111111 -> 1 000 a 1 0 0 111111 -> 1 000 0 -193 -> -16 1 0 1 111111 -> 1 000 1 -129 -> -15 1 10 a 11111 -> 1 001 a 1 10 0 11111 -> 1 001 0 -97 -> -14 1 10 1 11111 -> 1 001 1 -65 -> -13 1 110 a 1111 -> 1 010 a 1 110 0 1111 -> 1 010 0 -53 -> -12 1 110 1 1111 -> 1 010 1 -33 -> -11 1 1110 a 111 -> 1 011 a 1 1110 0 111 -> 1 011 0 -25 -> -10 1 1110 1 111 -> 1 011 1 -17 -> -9 1 11110 a 11 -> 1 100 a 1 11110 0 11 -> 1 100 0 -13 -> -8 1 11110 1 11 -> 1 100 1 -9 -> -7 1 111110 a 1 -> 1 101 a 1 111110 0 1 -> 1 101 0 -7 -> -6 1 111110 1 1 -> 1 101 1 -5 -> -5 1 1111110 a -> 1 110 a 1 1111110 0 -> 1 110 0 -4 -> -4 1 1111110 1 -> 1 110 1 -3 -> -3 1 1111111 a -> 1 111 a 1 1111111 0 -> 1 111 0 -2 -> -2 1 1111111 1 -> 1 111 1 -1 -> -1 12-bits significant (including sign) 27-bits value companding to 16-bits value 12 bits ~ 72 dB psychoacoustic masking -> 27 bits ~ 163 dB dynamic range 12-bits = "sabcdefghijk", s = sign, k = step_lsb, [step_lsb-1:0] = don't care for encoder, = sign for decoder s s step 0 1 abcdefghijk 00000000000000 -> 0 1111 abcdefghijk 0 01 abcdefghijk 0000000000000 -> 0 1110 abcdefghijk 0 001 abcdefghijk 000000000000 -> 0 1011 abcdefghijk 0 0001 abcdefghijk 00000000000 -> 0 1100 abcdefghijk 0 00001 abcdefghijk 0000000000 -> 0 1011 abcdefghijk 0 000001 abcdefghijk 000000000 -> 0 1010 abcdefghijk 0 0000001 abcdefghijk 00000000 -> 0 1001 abcdefghijk 0 00000001 abcdefghijk 0000000 -> 0 1000 abcdefghijk 0 000000001 abcdefghijk 000000 -> 0 0111 abcdefghijk 0 0000000001 abcdefghijk 00000 -> 0 0110 abcdefghijk 0 00000000001 abcdefghijk 0000 -> 0 0101 abcdefghijk 0 000000000001 abcdefghijk 000 -> 0 0100 abcdefghijk 0 0000000000001 abcdefghijk 00 -> 0 0011 abcdefghijk 0 00000000000001 abcdefghijk 0 -> 0 0010 abcdefghijk 0 000000000000001 abcdefghijk -> 0 0001 abcdefghijk 0 000000000000000 abcdefghijk -> 0 0000 abcdefghijk 1 0 abcdefghijk 11111111111111 -> 1 0000 abcdefghijk 1 10 abcdefghijk 1111111111111 -> 1 0001 abcdefghijk 1 110 abcdefghijk 111111111111 -> 1 0010 abcdefghijk 1 1110 abcdefghijk 11111111111 -> 1 0011 abcdefghijk 1 11110 abcdefghijk 1111111111 -> 1 0100 abcdefghijk 1 111110 abcdefghijk 111111111 -> 1 0101 abcdefghijk 1 1111110 abcdefghijk 11111111 -> 1 0110 abcdefghijk 1 11111110 abcdefghijk 1111111 -> 1 0111 abcdefghijk 1 111111110 abcdefghijk 111111 -> 1 1000 abcdefghijk 1 1111111110 abcdefghijk 11111 -> 1 1001 abcdefghijk 1 11111111110 abcdefghijk 1111 -> 1 1010 abcdefghijk 1 111111111110 abcdefghijk 111 -> 1 1011 abcdefghijk 1 1111111111110 abcdefghijk 11 -> 1 1100 abcdefghijk 1 11111111111110 abcdefghijk 1 -> 1 1101 abcdefghijk 1 111111111111110 abcdefghijk -> 1 1110 abcdefghijk 1 111111111111111 abcdefghijk -> 1 1111 abcdefghijk 2-bits significant (including sign) 17-bits value companding to 6-bits value 0 1 a 00000000000000 -> 0 1111 a 0 1 1 00000000000000 -> 0 1111 1 49152 -> 31 0 1 0 00000000000000 -> 0 1111 0 32768 -> 30 0 01 a 0000000000000 -> 0 1110 a 0 01 1 0000000000000 -> 0 1110 1 24578 -> 29 0 01 0 0000000000000 -> 0 1110 0 16384 -> 28 0 001 a 000000000000 -> 0 1101 a 0 001 1 000000000000 -> 0 1101 1 12288 -> 27 0 001 0 000000000000 -> 0 1101 0 8192 -> 26 0 0001 a 00000000000 -> 0 1100 a 0 0001 1 00000000000 -> 0 1100 1 6144 -> 25 0 0001 0 00000000000 -> 0 1100 0 4096 -> 24 0 00001 a 0000000000 -> 0 1011 a 0 00001 1 0000000000 -> 0 1011 1 3072 -> 23 0 00001 0 0000000000 -> 0 1011 0 2048 -> 22 0 000001 a 000000000 -> 0 1010 a 0 000001 1 000000000 -> 0 1010 1 1536 -> 21 0 000001 0 000000000 -> 0 1010 0 1024 -> 20 0 0000001 a 00000000 -> 0 1001 a 0 0000001 1 00000000 -> 0 1001 1 768 -> 19 0 0000001 0 00000000 -> 0 1001 0 512 -> 18 0 00000001 a 0000000 -> 0 1000 a 0 00000001 1 0000000 -> 0 1000 1 384 -> 17 0 00000001 0 0000000 -> 0 1000 0 256 -> 16 0 000000001 a 000000 -> 0 0111 a 0 000000001 1 000000 -> 0 0111 1 192 -> 15 0 000000001 0 000000 -> 0 0111 0 128 -> 14 0 0000000001 a 00000 -> 0 0110 a 0 0000000001 1 00000 -> 0 0110 1 96 -> 13 0 0000000001 0 00000 -> 0 0110 0 64 -> 12 0 00000000001 a 0000 -> 0 0101 a 0 00000000001 1 0000 -> 0 0101 1 48 -> 11 0 00000000001 0 0000 -> 0 0101 0 32 -> 10 0 000000000001 a 000 -> 0 0100 a 0 000000000001 1 000 -> 0 0100 1 24 -> 9 0 000000000001 0 000 -> 0 0100 0 16 -> 8 0 0000000000001 a 00 -> 0 0011 a 0 0000000000001 1 00 -> 0 0011 1 12 -> 7 0 0000000000001 0 00 -> 0 0011 0 8 -> 6 0 00000000000001 a 0 -> 0 0010 a 0 00000000000001 1 0 -> 0 0010 1 6 -> 5 0 00000000000001 0 0 -> 0 0010 0 4 -> 4 0 000000000000001 a -> 0 0001 a 0 000000000000001 1 -> 0 0001 1 3 -> 3 0 000000000000001 0 -> 0 0001 0 2 -> 2 0 000000000000000 a -> 0 0000 a 0 000000000000000 1 -> 0 0000 1 1 -> 1 0 000000000000000 0 -> 0 0000 0 0 -> 0 1 0 a 11111111111111 -> 1 0000 a 1 0 0 11111111111111 -> 1 0000 0 -49153 -> -32 1 0 1 11111111111111 -> 1 0000 1 -32769 -> -31 1 10 a 1111111111111 -> 1 0001 a 1 10 0 1111111111111 -> 1 0001 0 -24577 -> -30 1 10 1 1111111111111 -> 1 0001 1 -16385 -> -29 1 110 a 111111111111 -> 1 0010 a 1 110 0 111111111111 -> 1 0010 0 -12289 -> -28 1 110 1 111111111111 -> 1 0010 1 -8193 -> -27 1 1110 a 11111111111 -> 1 0011 a 1 1110 0 11111111111 -> 1 0011 0 -6145 -> -26 1 1110 1 11111111111 -> 1 0011 1 -4097 -> -25 1 11110 a 1111111111 -> 1 0100 a 1 11110 0 1111111111 -> 1 0100 0 -3073 -> -24 1 11110 1 1111111111 -> 1 0100 1 -2049 -> -23 1 111110 a 111111111 -> 1 0101 a 1 111110 0 111111111 -> 1 0101 0 -1537 -> -22 1 111110 1 111111111 -> 1 0101 1 -1025 -> -21 1 1111110 a 11111111 -> 1 0110 a 1 1111110 0 11111111 -> 1 0110 0 -769 -> -20 1 1111110 1 11111111 -> 1 0110 1 -513 -> -19 1 11111110 a 1111111 -> 1 0111 a 1 11111110 0 1111111 -> 1 0111 0 -385 -> -18 1 11111110 1 1111111 -> 1 0111 1 -257 -> -17 1 111111110 a 111111 -> 1 1000 a 1 111111110 0 111111 -> 1 1000 0 -193 -> -16 1 111111110 1 111111 -> 1 1000 1 -129 -> -15 1 1111111110 a 11111 -> 1 1001 a 1 1111111110 0 11111 -> 1 1001 0 -97 -> -14 1 1111111110 1 11111 -> 1 1001 1 -65 -> -13 1 11111111110 a 1111 -> 1 1010 a 1 11111111110 0 1111 -> 1 1010 0 -53 -> -12 1 11111111110 1 1111 -> 1 1010 1 -33 -> -11 1 111111111110 a 111 -> 1 1011 a 1 111111111110 0 111 -> 1 1011 0 -25 -> -10 1 111111111110 1 111 -> 1 1011 1 -17 -> -9 1 1111111111110 a 11 -> 1 1100 a 1 1111111111110 0 11 -> 1 1100 0 -13 -> -8 1 1111111111110 1 11 -> 1 1100 1 -9 -> -7 1 11111111111110 a 1 -> 1 1101 a 1 11111111111110 0 1 -> 1 1101 0 -7 -> -6 1 11111111111110 1 1 -> 1 1101 1 -5 -> -5 1 111111111111110 a -> 1 1110 a 1 111111111111110 0 -> 1 1110 0 -4 -> -4 1 111111111111110 1 -> 1 1110 1 -3 -> -3 1 111111111111111 a -> 1 1111 a 1 111111111111111 0 -> 1 1111 0 -2 -> -2 1 111111111111111 1 -> 1 1111 1 -1 -> -1 Companding could be used to compand two's complement artificial neural network weight factors 4-bits significant (including sign) 19-bits value companding to 8-bits value 4-bits = "sabc", s = sign, c = step_lsb, [step_lsb-1:0] = don't care for encoder, = sign for decoder s s step 0 1 abc 00000000000000 -> 0 1111 abc 0 01 abc 0000000000000 -> 0 1110 abc 0 001 abc 000000000000 -> 0 1011 abc 0 0001 abc 00000000000 -> 0 1100 abc 0 00001 abc 0000000000 -> 0 1011 abc 0 000001 abc 000000000 -> 0 1010 abc 0 0000001 abc 00000000 -> 0 1001 abc 0 00000001 abc 0000000 -> 0 1000 abc 0 000000001 abc 000000 -> 0 0111 abc 0 0000000001 abc 00000 -> 0 0110 abc 0 00000000001 abc 0000 -> 0 0101 abc 0 000000000001 abc 000 -> 0 0100 abc 0 0000000000001 abc 00 -> 0 0011 abc 0 00000000000001 abc 0 -> 0 0010 abc 0 000000000000001 abc -> 0 0001 abc 0 000000000000000 abc -> 0 0000 abc 1 0 abc 11111111111111 -> 1 0000 abc 1 10 abc 1111111111111 -> 1 0001 abc 1 110 abc 111111111111 -> 1 0010 abc 1 1110 abc 11111111111 -> 1 0011 abc 1 11110 abc 1111111111 -> 1 0100 abc 1 111110 abc 111111111 -> 1 0101 abc 1 1111110 abc 11111111 -> 1 0110 abc 1 11111110 abc 1111111 -> 1 0111 abc 1 111111110 abc 111111 -> 1 1000 abc 1 1111111110 abc 11111 -> 1 1001 abc 1 11111111110 abc 1111 -> 1 1010 abc 1 111111111110 abc 111 -> 1 1011 abc 1 1111111111110 abc 11 -> 1 1100 abc 1 11111111111110 abc 1 -> 1 1101 abc 1 111111111111110 abc -> 1 1110 abc 1 111111111111111 abc -> 1 1111 abc 0 1 abc 00000000000000 -> 0 1111 abc 0 1 111 00000000000000 -> 0 1111 111 245760 -> 127 0 1 100 00000000000000 -> 0 1111 100 196608 -> 124 0 1 abc 00000000000000 -> 0 1111 abc 0 1 001 00000000000000 -> 0 1111 001 147456 -> 121 0 1 000 00000000000000 -> 0 1111 000 131072 -> 120 0 01 abc 0000000000000 -> 0 1110 abc 0 01 001 0000000000000 -> 0 1110 001 73728 -> 113 0 01 000 0000000000000 -> 0 1110 000 65536 -> 112 0 001 abc 000000000000 -> 0 1101 abc 0 001 001 000000000000 -> 0 1101 001 36864 -> 105 0 001 000 000000000000 -> 0 1101 000 32768 -> 104 0 0001 abc 00000000000 -> 0 1100 abc 0 0001 001 00000000000 -> 0 1100 001 18432 -> 97 0 0001 000 00000000000 -> 0 1100 000 16384 -> 96 0 00001 abc 0000000000 -> 0 1011 abc 0 00001 001 0000000000 -> 0 1011 001 9216 -> 89 0 00001 000 0000000000 -> 0 1011 000 8192 -> 88 0 000001 abc 000000000 -> 0 1010 abc 0 000001 001 000000000 -> 0 1010 001 4608 -> 81 0 000001 000 000000000 -> 0 1010 000 4096 -> 80 0 0000001 abc 00000000 -> 0 1001 abc 0 0000001 001 00000000 -> 0 1001 001 2304 -> 73 0 0000001 000 00000000 -> 0 1001 000 2048 -> 72 0 00000001 abc 0000000 -> 0 1000 abc 0 00000001 001 0000000 -> 0 1000 001 1152 -> 65 0 00000001 000 0000000 -> 0 1000 000 1024 -> 64 0 000000001 abc 000000 -> 0 0111 abc 0 000000001 001 000000 -> 0 0111 001 576 -> 57 0 000000001 000 000000 -> 0 0111 000 512 -> 56 0 0000000001 abc 00000 -> 0 0110 abc 0 0000000001 001 00000 -> 0 0110 001 288 -> 49 0 0000000001 000 00000 -> 0 0110 000 256 -> 48 0 00000000001 abc 0000 -> 0 0101 abc 0 00000000001 001 0000 -> 0 0101 001 144 -> 41 0 00000000001 000 0000 -> 0 0101 000 128 -> 40 0 000000000001 abc 000 -> 0 0100 abc 0 000000000001 001 000 -> 0 0100 001 72 -> 33 0 000000000001 000 000 -> 0 0100 000 64 -> 32 0 0000000000001 abc 00 -> 0 0011 abc 0 0000000000001 001 00 -> 0 0011 001 36 -> 25 0 0000000000001 000 00 -> 0 0011 000 32 -> 24 0 00000000000001 abc 0 -> 0 0010 abc 0 00000000000001 001 0 -> 0 0010 001 18 -> 17 0 00000000000001 000 0 -> 0 0010 000 16 -> 16 0 000000000000001 abc -> 0 0001 abc 0 000000000000001 001 -> 0 0001 001 9 -> 9 0 000000000000001 000 -> 0 0001 000 8 -> 8 0 000000000000000 abc -> 0 0000 abc 0 000000000000000 001 -> 0 0000 001 1 -> 1 0 000000000000000 000 -> 0 0000 000 0 -> 0 1 0 abc 11111111111111 -> 1 0000 abc 1 0 000 11111111111111 -> 1 0000 000 -245761 -> -128 1 0 011 11111111111111 -> 1 0000 011 -196609 -> -125 1 0 abc 11111111111111 -> 1 0000 abc 1 0 110 11111111111111 -> 1 0000 110 -147457 -> -122 1 0 111 11111111111111 -> 1 0000 111 -131073 -> -121 1 10 abc 1111111111111 -> 1 0001 abc 1 10 110 1111111111111 -> 1 0001 110 -73729 -> -114 1 10 111 1111111111111 -> 1 0001 111 -655537 -> -113 1 110 abc 111111111111 -> 1 0010 abc 1 110 110 111111111111 -> 1 0010 110 -36865 -> -106 1 110 111 111111111111 -> 1 0010 111 -32769 -> -105 1 1110 abc 11111111111 -> 1 0011 abc 1 1110 110 11111111111 -> 1 0011 110 -18433 -> -98 1 1110 111 11111111111 -> 1 0011 111 -16385 -> -97 1 11110 abc 1111111111 -> 1 0100 abc 1 11110 110 1111111111 -> 1 0100 110 -9217 -> -90 1 11110 111 1111111111 -> 1 0100 111 -8193 -> -89 1 111110 abc 111111111 -> 1 0101 abc 1 111110 110 111111111 -> 1 0101 110 -4609 -> -82 1 111110 111 111111111 -> 1 0101 111 -4097 -> -81 1 1111110 abc 11111111 -> 1 0110 abc 1 1111110 110 11111111 -> 1 0110 110 -2305 -> -74 1 1111110 111 11111111 -> 1 0110 111 -2049 -> -73 1 11111110 abc 1111111 -> 1 0111 abc 1 11111110 110 1111111 -> 1 0111 110 -1153 -> -66 1 11111110 111 1111111 -> 1 0111 111 -1025 -> -65 1 111111110 abc 111111 -> 1 1000 abc 1 111111110 110 111111 -> 1 1000 110 -577 -> -58 1 111111110 111 111111 -> 1 1000 111 -513 -> -57 1 1111111110 abc 11111 -> 1 1001 abc 1 1111111110 110 11111 -> 1 1001 110 -289 -> -50 1 1111111110 111 11111 -> 1 1001 111 -257 -> -49 1 11111111110 abc 1111 -> 1 1010 abc 1 11111111110 110 1111 -> 1 1010 110 -145 -> -42 1 11111111110 111 1111 -> 1 1010 111 -129 -> -41 1 111111111110 abc 111 -> 1 1011 abc 1 111111111110 110 111 -> 1 1011 110 -73 -> -34 1 111111111110 111 111 -> 1 1011 111 -65 -> -33 1 1111111111110 abc 11 -> 1 1100 abc 1 1111111111110 110 11 -> 1 1100 110 -37 -> -26 1 1111111111110 111 11 -> 1 1100 111 -33 -> -25 1 11111111111110 abc 1 -> 1 1101 abc 1 11111111111110 110 1 -> 1 1101 110 -18 -> -18 1 11111111111110 111 1 -> 1 1101 111 -17 -> -17 1 111111111111110 abc -> 1 1110 abc 1 111111111111110 110 -> 1 1110 110 -10 -> -10 1 111111111111110 111 -> 1 1110 111 -9 -> -9 1 111111111111111 abc -> 1 1111 abc 1 111111111111111 110 -> 1 1111 110 -2 -> -2 1 111111111111111 111 -> 1 1111 111 -1 -> -1 1-bits significant (sign) 8-bits value companding to 4-bits value 1-bits = "s", s = sign, [s-1:0] = don't care for encoder, = sign for decoder s s 0 1 000000 -> 0 111 64 -> 7 0 01 00000 -> 0 110 32 -> 6 0 001 0000 -> 0 101 16 -> 5 0 0001 000 -> 0 100 8 -> 4 0 00001 00 -> 0 011 4 -> 3 0 000001 0 -> 0 010 2 -> 2 0 0000001 -> 0 001 1 -> 1 0 0000000 -> 0 000 0 -> 0 1 0 111111 -> 1 000 -128 -> -8 (might be considered invalid - NaN) 1 10 11111 -> 1 001 -64 -> -7 1 110 1111 -> 1 010 -32 -> -6 1 1110 111 -> 1 011 -16 -> -5 1 11110 11 -> 1 100 -8 -> -4 1 111110 1 -> 1 101 -4 -> -3 1 1111110 -> 1 110 -2 -> -2 1 1111111 -> 1 111 -1 -> -1 Companding could limit signals, signal attenuation above -6dB (is considered RMS level - continuous output) Companding 20-bit signal -> 17-bit, maximum 18dB attenuation s s step 0 0000 abcdefghijklmno -> 0 0 abcdefghijklmno 0 0001 abcdefghijklmno -> 0 10 abcdefghijklmn 0 0010 abcdefghijklmno -> 0 110 abcdefghijklm 0 0011 abcdefghijklmno -> 0 1110 abcdefghijkl 0 0100 abcdefghijklmno -> 0 11110 abcdefghijk 0 0101 abcdefghijklmno -> 0 111110 abcdefghij 0 0110 abcdefghijklmno -> 0 1111110 abcdefghi 0 0111 abcdefghijklmno -> 0 11111110 abcdefgh 0 1000 abcdefghijklmno -> 0 111111110 abcdefg 0 1001 abcdefghijklmno -> 0 1111111110 abcdef 0 1010 abcdefghijklmno -> 0 11111111110 abcde 0 1011 abcdefghijklmno -> 0 111111111110 abcd 0 1100 abcdefghijklmno -> 0 1111111111110 abc 0 1101 abcdefghijklmno -> 0 11111111111110 ab 0 1110 abcdefghijklmno -> 0 111111111111110 a 0 1111 abcdefghijklmno -> 0 111111111111111 a s s step 1 1111 abcdefghijklmno -> 1 1 abcdefghijklmno 1 1110 abcdefghijklmno -> 1 01 abcdefghijklmn 1 1101 abcdefghijklmno -> 1 001 abcdefghijklm 1 1100 abcdefghijklmno -> 1 0001 abcdefghijkl 1 1011 abcdefghijklmno -> 1 00001 abcdefghijk 1 1010 abcdefghijklmno -> 1 000001 abcdefghij 1 1001 abcdefghijklmno -> 1 0000001 abcdefghi 1 1000 abcdefghijklmno -> 1 00000001 abcdefgh 1 0111 abcdefghijklmno -> 1 000000001 abcdefg 1 0110 abcdefghijklmno -> 1 0000000001 abcdef 1 0101 abcdefghijklmno -> 1 00000000001 abcde 1 0100 abcdefghijklmno -> 1 000000000001 abcd 1 0011 abcdefghijklmno -> 1 0000000000001 abc 1 0010 abcdefghijklmno -> 1 00000000000001 ab 1 0001 abcdefghijklmno -> 1 000000000000001 a 1 0000 abcdefghijklmno -> 1 000000000000000 a Companding 37-bit signal -> 33-bit, maximum 24dB attenuation s s step 0 00000 abcdefghijklmnopqrstuvwxyzabcde -> 0 0 abcdefghijklmnopqrstuvwxyzabcde 0 00001 abcdefghijklmnopqrstuvwxyzabcde -> 0 10 abcdefghijklmnopqrstuvwxyzabcd 0 00010 abcdefghijklmnopqrstuvwxyzabcde -> 0 110 abcdefghijklmnopqrstuvwxyzabc 0 00011 abcdefghijklmnopqrstuvwxyzabcde -> 0 1110 abcdefghijklmnopqrstuvwxyzab 0 00100 abcdefghijklmnopqrstuvwxyzabcde -> 0 11110 abcdefghijklmnopqrstuvwxyzy 0 00101 abcdefghijklmnopqrstuvwxyzabcde -> 0 111110 abcdefghijklmnopqrstuvwxyz 0 00110 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111110 abcdefghijklmnopqrstuvwxy 0 00111 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111110 abcdefghijklmnopqrstuvwx 0 01000 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111110 abcdefghijklmnopqrstuvw 0 01001 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111110 abcdefghijklmnopqrstuv 0 01010 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111111110 abcdefghijklmnopqrstu 0 01011 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111111110 abcdefghijklmnopqrst 0 01100 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111110 abcdefghijklmnopqrs 0 01101 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111111111110 abcdefghijklmnopqr 0 01110 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111111111110 abcdefghijklmnopq 0 01111 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111111110 abcdefghijklmnop 0 10000 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111111111111110 abcdefghijklmno 0 10001 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111111111111110 abcdefghijklmn 0 10010 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111111111110 abcdefghijklm 0 10011 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111111111111111110 abcdefghijkl 0 10100 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111111111111111110 abcdefghijk 0 10101 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111111111111110 abcdefghij 0 10110 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111111111111111111110 abcdefghi 0 10111 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111111111111111111110 abcdefgh 0 11000 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111111111111111110 abcdefg 0 11001 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111111111111111111111110 abcdef 0 11010 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111111111111111111111110 abcde 0 11011 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111111111111111111110 abcd 0 11100 abcdefghijklmnopqrstuvwxyzabcde -> 0 11111111111111111111111111110 abc 0 11101 abcdefghijklmnopqrstuvwxyzabcde -> 0 111111111111111111111111111110 ab 0 11110 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111111111111111111111110 a 0 11111 abcdefghijklmnopqrstuvwxyzabcde -> 0 1111111111111111111111111111111 a s s step 1 11111 abcdefghijklmnopqrstuvwxyzabcde -> 1 1 abcdefghijklmnopqrstuvwxyzabcde 1 11110 abcdefghijklmnopqrstuvwxyzabcde -> 1 01 abcdefghijklmnopqrstuvwxyzabcd 1 11101 abcdefghijklmnopqrstuvwxyzabcde -> 1 001 abcdefghijklmnopqrstuvwxyzabc 1 11100 abcdefghijklmnopqrstuvwxyzabcde -> 1 0001 abcdefghijklmnopqrstuvwxyzab 1 11011 abcdefghijklmnopqrstuvwxyzabcde -> 1 00001 abcdefghijklmnopqrstuvwxyzy 1 11010 abcdefghijklmnopqrstuvwxyzabcde -> 1 000001 abcdefghijklmnopqrstuvwxyz 1 11001 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000001 abcdefghijklmnopqrstuvwxy 1 11000 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000001 abcdefghijklmnopqrstuvwx 1 10111 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000001 abcdefghijklmnopqrstuvw 1 10110 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000001 abcdefghijklmnopqrstuv 1 10101 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000000001 abcdefghijklmnopqrstu 1 10100 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000000001 abcdefghijklmnopqrst 1 10011 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000001 abcdefghijklmnopqrs 1 10010 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000000000001 abcdefghijklmnopqr 1 10001 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000000000001 abcdefghijklmnopq 1 10000 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000000001 abcdefghijklmnop 1 01111 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000000000000001 abcdefghijklmno 1 01110 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000000000000001 abcdefghijklmn 1 01101 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000000000001 abcdefghijklm 1 01100 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000000000000000001 abcdefghijkl 1 01011 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000000000000000001 abcdefghijk 1 01010 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000000000000001 abcdefghij 1 01001 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000000000000000000001 abcdefghi 1 01000 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000000000000000000001 abcdefgh 1 00111 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000000000000000001 abcdefg 1 00110 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000000000000000000000001 abcdef 1 00101 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000000000000000000000001 abcde 1 00100 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000000000000000000001 abcd 1 00011 abcdefghijklmnopqrstuvwxyzabcde -> 1 00000000000000000000000000001 abc 1 00010 abcdefghijklmnopqrstuvwxyzabcde -> 1 000000000000000000000000000001 ab 1 00001 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000000000000000000000001 a 1 00000 abcdefghijklmnopqrstuvwxyzabcde -> 1 0000000000000000000000000000000 a